It is known to use a first computer device to view and control a second computer device using a Virtual Network Computing (VNC) viewer application running on the first computer device (VNC viewer) and a VNC server application running on the second computer device (VNC server). The contents of the display of the second computer device are duplicated on the first computer device which is typically remote from the second computer device. The first computer device has an interface mechanism which allows the user to send user input events, such as pressing a physical key on the device, moving the mouse cursor or touching a touch screen input, to the second computer device being controlled. As will be appreciated, the form of data link and the nature of the computer devices can vary, depending on the situation being used.
The first computer device may be for a support engineer using the remote control facility to provide device support to a customer using a second computer device. If a customer of a company experiences a problem with their computer device, the support engineer can diagnose and fix the problem by viewing or interacting with the customer's device by using the first device. Alternatively, the support engineer may use the first device to install or update software or other settings on a user's device. Alternatively, the first computer device may be for a user using the remote control facility to control another computer device.
It is known for an operating system running on a computer device to rely on a user moving the mouse to certain corners (or edges) of the screen. For example, Microsoft® have introduced a Modern UI “Start Screen” in Windows 8's desktop behaviour. The Modern UI “Start Screen” is invoked by clicking in the bottom-left corner of the screen, and the other corners and edges are used for other user interface purposes. Recent versions of Mac OS X also allow the user to define custom actions which are performed when the cursor is placed in one of the corners of the screen. There are both operating systems (OS) and third-party applications that provide collapsible docks/taskbars when moving the cursor to the edge of the screen.
FIG. 1 shows a screenshot of the display from the first computer device (local desktop running VNC viewer). A view of the display from the second computer device (remote desktop running VNC server) is shown as a window within the full display for the first computer device. Such a window may be termed a VNC Viewer window. Thus the VNC viewer is being used in “windowed” mode which is desirable because it allows the user to work with other local desktop windows without handling the VNC Viewer window any differently.
FIG. 1 illustrates a problem with the remote control facility which occurs in such situations. The remote cursor (i.e. cursor on the remote desktop) starts aligned with the local cursor (i.e. cursor on the local desktop) at A. The user wishes to invoke the bottom-left-hand corner user interface in the remote display and thus moves the local cursor to B in a quick motion, aiming approximately for the corner of the remote desktop view. If the user was working physically at the remote desktop, moving the mouse to the bottom-left in such a quick, coarse way would not require subsequent corrective movements and would trigger the desired user interface. In general, individual quick mouse movements are not very precise and users do not generally wish to spend time moving the mouse slowly to achieve accuracy. A user is unlikely to have pinpoint accuracy when aiming the mouse cursor for the corner of the window for the remote desktop.
However, as shown in FIG. 1, such a coarse movement results in the remote cursor stopping at point C which is not close enough to the corner to trigger the desired user interface. This occurs because the local and remote cursors are only updated at a limited rate. For example, a typical USB mouse running under Microsoft® Windows 7 is updated at 125 Hz. Thus for a 1680 pixel width display, a rapid movement across the display could be achieved in around 200 ms. This means that the remote desktop receives cursor updates about 70 pixels apart. Accordingly, the mouse cursor on the local desktop does not “stick” to the desired corner/edge of the remote desktop display when a user is attempting to control the remote machine. Instead, the user has to place the mouse cursor very precisely on the corner/edge of the remote desktop view. This may be slow and tedious, particularly if the detection area of the user interface mechanism is very small.
It is noted that a similar problem can occur in full screen mode depending on the screen resolutions for both the local and remote desktops and the VNC Viewer display scaling setting. Typically, the VNC Viewer Screen will not cover the whole display of the local desktop and can be considered to be “letterboxed” on the local display. In such situations, a user will experience the frustrations illustrated in FIG. 1 when attempting to hit the corner of the remote desktop display. Only when VNC Viewer Screen is completely covering the whole display of the local desktop will the issue of “hitting the corners” go away and the user experience on the local desktop will be very similar to working physically at the remote desktop.
The applicant has recognised the need for improved remote control.